﻿using System;

namespace Abstract2ion
{
	public class ConsoleWrapper : IConsoleWrapper
	{
		public ConsoleColor ForegroundColour
		{
			get { return Console.ForegroundColor; }
			set { Console.ForegroundColor = value; }
		}

		public ConsoleColor BackgroundColour
		{
			get { return Console.BackgroundColor; }
			set { Console.BackgroundColor = value; }
		}

		public void Write(bool value)
		{
			Console.Write(value);
		}

		public void Write(char value)
		{
			Console.Write(value);
		}

		public void Write(char[] value)
		{
			Console.Write(value);
		}

		public void Write(decimal value)
		{
			Console.Write(value);
		}

		public void Write(double value)
		{
			Console.Write(value);
		}

		public void Write(int value)
		{
			Console.Write(value);
		}

		public void Write(long value)
		{
			Console.Write(value);
		}

		public void Write(object value)
		{
			Console.Write(value);
		}

		public void Write(float value)
		{
			Console.Write(value);
		}

		public void Write(string value)
		{
			Console.Write(value);
		}

		public void Write(string format, object value)
		{
			Console.Write(format, value);
		}

		public void Write(string format, params object[] args)
		{
			Console.Write(format, args);
		}

		public void Write(char[] buffer, int index, int count)
		{
			Console.Write(buffer, index, count);
		}

		public void WriteLine(bool value)
		{
			Console.WriteLine(value);
		}

		public void WriteLine(char value)
		{
			Console.WriteLine(value);
		}

		public void WriteLine(char[] value)
		{
			Console.WriteLine(value);
		}

		public void WriteLine(decimal value)
		{
			Console.WriteLine(value);
		}

		public void WriteLine(double value)
		{
			Console.WriteLine(value);
		}

		public void WriteLine(int value)
		{
			Console.WriteLine(value);
		}

		public void WriteLine(long value)
		{
			Console.WriteLine(value);
		}

		public void WriteLine(object value)
		{
			Console.WriteLine(value);
		}

		public void WriteLine(float value)
		{
			Console.WriteLine(value);
		}

		public void WriteLine(string value)
		{
			Console.WriteLine(value);
		}

		public void WriteLine(string format, object value)
		{
			Console.WriteLine(format, value);
		}

		public void WriteLine(string format, params object[] args)
		{
			Console.WriteLine(format, args);
		}

		public void WriteLine(char[] buffer, int index, int count)
		{
			Console.WriteLine(buffer, index, count);
		}

		public int Read()
		{
			return Console.Read();
		}

		public string ReadLine()
		{
			return Console.ReadLine();
		}

		public ConsoleKeyInfo ReadKey()
		{
			return Console.ReadKey();
		}

		public ConsoleKeyInfo ReadKey(bool intercept)
		{
			return Console.ReadKey(intercept);
		}

		public void ResetColour()
		{
			Console.ResetColor();
		}
	}
}